#ifndef _VFX_LINE_SFX_
#define _VFX_PATH_SFX_

#include "sfx.h"
#include "math/counter.h"
#include "part2d/part2d.h"
namespace vfx
{

// holder for sprites that only exists for one cycle
class LineSFX : public SFXSet
{
public:
	struct	LineInst
	{
		math::Vec2	From, Delta;
	};
	struct	LineSet
	{
		math::Counter				Progress;
		math::Counter				GenRate;
		int							LineIndex;
		std::vector<LineInst>		Lines;
	};
							LineSFX(EffectMan*	pParent, const std::string& PartSys, float GenRate);
	virtual					~LineSFX();
	virtual void			Render(const math::Vec2& Offset, float Scale);
	virtual void			Tick(float dt);
	void					BeginSet(float	Time);
	void					CloseSet();
	void					AddLine(const math::Vec2& From, const math::Vec2& To);
	void					MakeBox(const math::Vec2& TL, const math::Vec2& BR, float Time);
private:
	part2d::Part2D*			m_pSys;
	std::vector<LineSet*>	m_Lines;
	LineSet*				m_pCurrent;
	float					m_GenRate;
};

};
#endif // _VFX_PATH_SFX_
